package com.stellar.circle.basic.entity;

import java.util.Date;
import java.io.Serializable;

/**
 * 评论表(SComment)实体类
 *
 * @author Jqchan
 * @since 2025-05-19 14:52:26
 */
public class SComment implements Serializable {
    private static final long serialVersionUID = 125460809102140389L;
    
    /**
     * 评论ID，主键
     */
    private Long id;
    
    /**
     * 评论用户ID（关联user表id）
     */
    private Long userId;
    
    /**
     * 关联来源ID（帖子ID或闲置物品ID）
     */
    private Long sourceId;
    
    /**
     * 来源类型：post-帖子/idle-闲置物品
     */
    private String sourceType;
    
    /**
     * 父评论ID（关联本表id，NULL表示一级评论）
     */
    private Long parentId;
    
    /**
     * 根评论ID（关联本表id，NULL表示一级评论）
     */
    private Long rootId;
    
    /**
     * 评论内容
     */
    private String content;
    
    /**
     * 评论图片（JSON数组格式存储URL）
     */
    private String images;
    
    /**
     * 是否匿名：0-实名/1-匿名
     */
    private Integer isAnonymous;
    
    /**
     * 是否被隐藏：0-否/1-是（敏感内容自动隐藏）
     */
    private Integer isHidden;
    
    /**
     * 隐藏原因
     */
    private String hiddenReason;
    
    /**
     * 状态：published-已发布/hidden-已隐藏/deleted-已删除
     */
    private String commentStatus;
    
    /**
     * 点赞数
     */
    private Integer likeCount;
    
    /**
     * 回复数
     */
    private Integer replyCount;
    
    /**
     * 创建时间
     */
    private Date createTime;
    
    /**
     * 创建人
     */
    private String createBy;
    
    /**
     * 修改时间
     */
    private Date updateTime;
    
    /**
     * 修改人
     */
    private String updateBy;
    
    /**
     * 是否删除：1-删除/0-未删除
     */
    private Integer isDeleted;
    


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getSourceId() {
        return sourceId;
    }

    public void setSourceId(Long sourceId) {
        this.sourceId = sourceId;
    }

    public String getSourceType() {
        return sourceType;
    }

    public void setSourceType(String sourceType) {
        this.sourceType = sourceType;
    }

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public Long getRootId() {
        return rootId;
    }

    public void setRootId(Long rootId) {
        this.rootId = rootId;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getImages() {
        return images;
    }

    public void setImages(String images) {
        this.images = images;
    }

    public Integer getIsAnonymous() {
        return isAnonymous;
    }

    public void setIsAnonymous(Integer isAnonymous) {
        this.isAnonymous = isAnonymous;
    }

    public Integer getIsHidden() {
        return isHidden;
    }

    public void setIsHidden(Integer isHidden) {
        this.isHidden = isHidden;
    }

    public String getHiddenReason() {
        return hiddenReason;
    }

    public void setHiddenReason(String hiddenReason) {
        this.hiddenReason = hiddenReason;
    }

    public String getCommentStatus() {
        return commentStatus;
    }

    public void setCommentStatus(String commentStatus) {
        this.commentStatus = commentStatus;
    }

    public Integer getLikeCount() {
        return likeCount;
    }

    public void setLikeCount(Integer likeCount) {
        this.likeCount = likeCount;
    }

    public Integer getReplyCount() {
        return replyCount;
    }

    public void setReplyCount(Integer replyCount) {
        this.replyCount = replyCount;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Integer getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }
}
